1. Field
The present disclosure relates generally to an improved data processing system and, in particular, to a method and apparatus for managing images. Still more particularly, the present disclosure relates to a method and apparatus for managing images for virtual machines.
2. Description of the Related Art
The Internet, also referred to as an “internetwork”, is a set of computer networks, possibly dissimilar, joined together by means of gateways that handle data transfer and the conversion of messages from a protocol of the sending network to a protocol used by the receiving network. When capitalized, the term “Internet” refers to the collection of networks and gateways that use the TCP/IP suite of protocols. The Internet may carry information and provide services. The information and services include, for example, electronic mail, online chat services, file transfers, web pages, and other resources.
The Internet is a commonly used source of information and entertainment. Further, the Internet is also used a medium for business activities. Many businesses, government entities, and other organizations have a presence on the Internet using websites to perform various transactions. Various organizations may offer goods and services. These goods and services may involve a sale of goods that are to be shipped to a customer. The goods also may be software and/or data purchased by a customer and transferred over the Internet to the customer. Websites, and other resources on the internet, may be provided through the use of servers.
These servers may take the form of computers or software implementations of computers. Virtual machines may be used to provide services to different users on the internet as well as on other types of networks. For example, virtual machines may be used to respond to requests by users to a website for performing different transactions. These transactions may include, for example, without limitation, sales of goods and services.
A virtual machine is a software implementation of a machine that executes instructions like a physical version of the machine. In these examples, the virtual machine is a computer. Many virtual machines may run on a single computer. When multiple virtual machines are present, these virtual machines share the physical resources on which the virtual machines run. Each virtual machine runs its own operating system on the computer and has its own set of applications or processes.
A virtual machine may be moved from one location to another location. In other words, the virtual machine may be moved from one computer to another computer. This type of movement is often referred to as a relocation or migration of the virtual machine. For example, a virtual machine may be migrated from a local area network to a cloud based infrastructure.
The migration of the virtual machine may occur while the virtual machines are live. In other words, the virtual machines may still be responding to requests from clients while the migration of virtual machines occurs. A virtual machine within the virtual machines responding to requests may be halted while that virtual machine is migrated from one location to another location. After the virtual machine has been migrated, that virtual machine may then be restarted to respond to requests. As a result, virtual machines may respond to requests at the locations until all of the virtual machines have been migrated.
In migrating a virtual machine from one location to another location, the image of the virtual machine is copied and moved from the current location to the target location. The current location may be the source computer in which the virtual machine is located, and the destination is the computer in which the virtual machine is to be moved to as part of the migration.
An image for a virtual machine may vary in size. In some cases, the size may be large. For example, an image may be, for example, without limitation, 10 gigabytes or 50 gigabytes. While the virtual machine is being moved from the source to the destination, the virtual machine is halted and does not process requests or perform other processing. The virtual machine is not started until the transfer of the image completes. As a result, it is desirable to complete the transfer of the image for the virtual machine as fast as possible to reduce the amount of time that the virtual machine does not process requests.
Therefore, it would be advantageous to have a method and apparatus that takes into account at least some of the issues discussed above, as well as possibly other issues.